package cn.edu.zafu.bigdata.LiJuan.ch07;

import java.io.*;

public class RhymingWords {
    //主程序入口
    public static void main(String[] args) throws IOException {
        FileReader words=new FileReader("files/words.txt");

        //进行单词的逆序、排序、再逆序还原
        Reader rhymeWords=reverse(sort(reverse(words)));
        //将处理后的单词列表输出显示
        BufferedReader in=new BufferedReader(rhymeWords);
        String input;
        while((input=in.readLine())!=null)
            System.out.println(input);
        in.close();
    }

    //创建管道，创建并启动单词逆序线程
    public static Reader reverse(Reader source) throws IOException{
        BufferedReader in=new BufferedReader(source);
        PipedWriter pipeOut=new PipedWriter();
        PipedReader pipeIn=new PipedReader(pipeOut);
        PrintWriter out=new PrintWriter(pipeOut);
        new ReverseThread(out,in).start();
        return pipeIn;
    }

    //创建管道，创建并启动单词排序线程
    public static Reader sort(Reader source) throws IOException{
        BufferedReader in=new BufferedReader(source);
        PipedWriter pipeOut=new PipedWriter();
        PipedReader pipeIn=new PipedReader(pipeOut);
        PrintWriter out=new PrintWriter(pipeOut);
        new ReverseThread(out,in).start();
        return pipeIn;
    }
}
